package vip.source.pattern.part11.flyweight;

import org.junit.jupiter.api.Test;

/**
 * @Description: 享元模式测试
 * @Author: zy
 **/
public class UnitTest {
    @Test
    public void test() {
        FontFactory fontFactory = new FontFactory();

        Font font1 = fontFactory.getFont("Arial");
        Font font2 = fontFactory.getFont("Times New Roman");
        Font font3 = fontFactory.getFont("Arial");

        // font1 和 font3 实际上是相同的享元对象，它们共享相同的内部状态
        // font2 是另一个享元对象，因为它的内部状态不同

        font1.render("Hello, world!");
        font2.render("This is a test.");
        font3.render("Flyweight pattern.");
    }

}
